package com.swu.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 患者基本信息表
 * </p>
 *
 * @author 勾新杰
 * @since 2025-06-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("patient_info")
@Schema(name = "PatientInfo", description = "患者基本信息表")
public class PatientInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "病案号")
    @TableId(value = "medical_record_id", type = IdType.AUTO)
    private String medicalRecordId;

    @Schema(description = "健康卡号")
    private String healthCard;

    @Schema(description = "姓名")
    private String name;

    @Schema(description = "性别")
    private String gender;

    @Schema(description = "出生日期")
    private LocalDate birthDate;

    @Schema(description = "年龄")
    private Integer age;

    @Schema(description = "婴儿月龄")
    private Integer infantAgeMonths;

    @Schema(description = "国籍")
    private String nationality;

    @Schema(description = "出生地")
    private String birthPlace;

    @Schema(description = "籍贯")
    private String originPlace;

    @Schema(description = "民族")
    private String ethnicity;

    @Schema(description = "证件号码")
    private String idNumber;

    @Schema(description = "职业")
    private String occupation;

    @Schema(description = "婚姻状况：1.未婚 2.已婚 3.丧偶 4.离婚 9.其他")
    private Integer maritalStatus;

    @Schema(description = "现住址")
    private String currentAddress;

    @Schema(description = "电话")
    private String phone;

    @Schema(description = "邮编")
    private String postalCode;

    @Schema(description = "户口地址")
    private String registeredAddress;

    @Schema(description = "工作单位及地址")
    private String workUnit;

    @Schema(description = "单位电话")
    private String workPhone;

    @Schema(description = "联系人姓名")
    private String contactName;

    @Schema(description = "联系人关系")
    private String contactRelation;

    @Schema(description = "联系人电话")
    private String contactPhone;

    @Schema(description = "血型：1.A 2.B 3.O 4.AB 5.不详 6.未查")
    private Integer bloodType;

    @Schema(description = "Rh因子：1.阴 2.阳 3.不详 4.未查")
    private Integer rhFactor;

    @Schema(description = "损伤中毒外部原因")
    private String injuryCause;

    @Schema(description = "就治医院编码")
    private String facilityOrgCode;
}
